import Vue from 'vue'
import VueRouter from 'vue-router'

import routes from './routes'
import { Cookies } from 'quasar'

Vue.use(VueRouter)

/* #TODO: @pablo
1、下面这一大坨组件和包注册的可以放到别的地方（比如.quasar/app.js）去注册
2、 HZRecorder的位置，放到plugins或者statics里面吧
*/
import axios from 'axios'
Vue.prototype.$http = axios
import HZRecorder from '../plugins/HZRecorder.js'
Vue.prototype.$HZRecorder = HZRecorder
/*
 * If not building with SSR mode, you can
 * directly export the Router instantiation
 */

export default function (/* { store, ssrContext } */) {
  const Router = new VueRouter({
    scrollBehavior: () => ({ y: 0 }),
    routes,

    // Leave these as is and change from quasar.conf.js instead!
    // quasar.conf.js -> build -> vueRouterMode
    // quasar.conf.js -> build -> publicPath
    mode: process.env.VUE_ROUTER_MODE,
    base: process.env.VUE_ROUTER_BASE
  })

  Router.beforeEach((to, from, next) => {
    /* 只有login页面不需要验证 */
    if (!to.matched[0].meta.requireAuth) next()
    /* 这里表示页面内导航若有userName可以通过，若导航是去/login,没有userName也可以通过，若cookie过期，则重定向至/login */
    Cookies.get('userName') || to.path === '/login'
      ? next()
      : next({ path: '/login' })

    /* #TODO: @pablo 这一段不会执行吧，因为前面next()已经跳出 */
    /* 如果本地 存在 token 则 不允许直接跳转到 登录页面 */
  })

  return Router
}
